package bj.yanchao.com.dagger2_example.component;

import javax.inject.Singleton;

import bj.yanchao.com.dagger2_example.YApplication;
import bj.yanchao.com.dagger2_example.module.ApplicationModule;
import bj.yanchao.com.dagger2_example.view.MainActivity;
import dagger.Component;

/**
 * ${TODO} What the class does
 *
 * @author： yanchao
 * @date： 6/3/16-10:52 PM
 * ${TAGS}
 */
@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {
    void inject(MainActivity activity);
    /**
     * The following are also possible:
     *
     * void inject(InputActivity activity);
     * void inject(BaseActivity activity);
     * void inject(SomeFragmentSubclass fragment);
     *
     * They can all live harmoniously here, because they have different method signatures.
     * I've also seen injectActivity() and injectFragment() variants. I have not done research into
     * the history of this.
     */
}

